Cosense Code Clone
bsahd.icon
公開projectの場合
最初はclone
$ deno run --allow-net=scrapbox.io:443 --allow-write=./{プロジェクト名} --allow-read=./{プロジェクト名} deno run jsr:@bsahd/cosense-code-clone clone プロジェクト名
./{プロジェクト名}にクローンされる
必ずアクセスは./{プロジェクト名}のみの許可にしてください。そうでないとインジェクションによって重要なファイルが書き換えられることがあります。
pull
変更のあるページのみ再作成する
$ deno run --allow-net=scrapbox.io:443 --allow-write=./{プロジェクト名} --allow-read=./{プロジェクト名} deno run jsr:@bsahd/cosense-code-clone pull プロジェクト名
更新が近い順ソート(標準)なので、modifiedが消えたら少し待って終了していいのかな
Cosenseから消えたページはファイル上には残る
また、Cosense上から消えたcodeblockも残る
非公開projectの場合
準備中です
$ deno run --allow-write=./{格納先} --allow-read=./{格納先} deno run jsr:@bsahd/cosense-code-clone json ファイル名 格納先
export json dataをもとに生成できるようにしたい
Cosense export JSON Dataの型定義ってある?
私も調べてたwbsahd.icon
構造
ページ名に/が入る場合、ファイルシステム上では階層構造になる
日記ページがちゃんと階層化される
コードブロック名ではされない(エスケープされる)ので注意
後は中で普通に#include "../ページ名/コードブロック名"すればいい
./scrapbox_temp/ページ名/コードブロック名形式になる
ページテキストは./scrapbox_temp/ページ名/text.txtにクローンされる
ページJSONは./scrapbox_temp/ページ名/json.jsonにクローンされる
ページHTMLは./scrapbox_temp/ページ名/text.htmlにクローンされる
Windows環境の場合、ページ名から: * ? " < > ? |はパーセントエンコードされる
パーセントエンコードの為%もエンコードされる
\ /は自動的に階層にする
ファイル名の場合は/と
書き込み失敗しても続きのページはしっかりとやる
/or\の前後に空白があると失敗する
複数のページからリンクされてても本文がなければ(薄くなっているなら)HTMLは生成されません
空ページの一覧のAPIあるのかな
だめだ。完全に静的サイトジェネレーターを目指してる
目次作る
頭文字ごとにアクセスできるようにする
1/2 hop linksだす
2 hopの重複が気になる
メリット
HTTP importに対応していない言語でも使える
お気に入りのpublic projectがローカルで読めるようになる
新バージョンで井戸端をcloneする
9.2GB
7-zipの最速で圧縮すると1.3GBになる
容量の大半が重複した複数フォーマットとクソデカ2 hop linksでは...
インデックス
https://gyazo.com/00237f540afa7fc175475d098d30f8d2
上部の文字の塊:それぞれの文字ごとに索引になっていて、頭文字から引ける
ページ
https://gyazo.com/c1cc6c47475dbf224dedf9310447a928
画像類は基本的に読み込まれない
table:test
A1 B1 C1
A2 B2 C2
A3 B3 C3
わかりやすい形式で保存する
HTMLを生成する
リンク用にディレクトリ化されたコードブロックのファイルができる
名前の由来
Cosense Code: Cosense内のコードブロック
Clone: git cloneを意識してる
Cosenseをコードリポジトリとして使ってみたかった
旧バージョン:
井戸端全体をcloneしてみる
ぽつぽつエラーが出る
64.7MB,30833フォルダ(32692 pages)
HTMLあり:187MB 33025フォルダ
21,566,666文字(1文字3バイト)
2100万文字w
https://gyazo.com/4e82603c8c5ec8c2b68835445a586d3e
普段はできないタイトル順にバーッと並べてみる体験
ディレクトリ表示が重いので頭文字ごとのディレクトリを置いとくべきだった
scrapbox-reader風に使えるようにHTMLを生成したい
大体できた